<table>
    <tbody>
        <tr class="prop">
            <td valign="top" class="name">
              <label for="username"><g:message code="shiro.user.username.label" default="Username" /></label>
            </td>
            <td valign="top" class="value ${hasErrors(bean: userInstance, field: 'username', 'errors')}">
                <g:textField name="username" value="${userInstance?.username}" />
            </td>
        </tr>
        <tr class="prop">
            <td valign="top" class="name">
              <label for="passwordHash"><g:message code="shiro.user.passwordHash.label" default="Password Hash" /></label>
            </td>
            <td valign="top" class="value ${hasErrors(bean: userInstance, field: 'passwordHash', 'errors')}">
                <g:textField name="passwordHash" value="${userInstance?.passwordHash}" />
            </td>
        </tr>
        <tr class="prop">
            <td valign="top" class="name">
              <label for="permissions"><g:message code="shiro.user.permissions.label" default="Permissions" /></label>
            </td>
            <td valign="top" class="value ${hasErrors(bean: userInstance, field: 'permissions', 'errors')}">
            </td>
        </tr>
        <tr class="prop">
            <td valign="top" class="name">
              <label for="roles"><g:message code="shiro.user.roles.label" default="Roles" /></label>
            </td>
            <td valign="top" class="value ${hasErrors(bean: userInstance, field: 'roles', 'errors')}">
                <g:select name="roles" from="${org.icress.fusion.shiro.Role.list()}" optionKey="id" optionValue="name" size="5" value="${userInstance?.roles*.id}" />
            </td>
        </tr>
    </tbody>
</table>